package com.ruoyi.yys.service;

import java.util.List;

import cn.hutool.core.lang.Dict;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.yys.domain.ImportExportTemplate;
import com.ruoyi.yys.domain.entityBo.ImportExportParamBo;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;

/**
 * 导入导出模板Service接口
 * 
 * @author xinyin
 * @date 2022-12-07
 */
public interface IImportExportTemplateService 
{
    /**
     * 查询导入导出模板
     * 
     * @param id 导入导出模板主键
     * @return 导入导出模板
     */
    public ImportExportTemplate selectImportExportTemplateById(Long id);

    /**
     * 查询导入导出模板列表
     * 
     * @param importExportTemplate 导入导出模板
     * @return 导入导出模板集合
     */
    public List<ImportExportTemplate> selectImportExportTemplateList(ImportExportTemplate importExportTemplate);

    /**
     * 新增导入导出模板
     * 
     * @param importExportTemplate 导入导出模板
     * @return 结果
     */
    public int insertImportExportTemplate(ImportExportTemplate importExportTemplate);

    /**
     * 修改导入导出模板
     * 
     * @param importExportTemplate 导入导出模板
     * @return 结果
     */
    public int updateImportExportTemplate(ImportExportTemplate importExportTemplate);

    /**
     * 批量删除导入导出模板
     * 
     * @param ids 需要删除的导入导出模板主键集合
     * @return 结果
     */
    public int deleteImportExportTemplateByIds(Long[] ids);

    /**
     * 删除导入导出模板信息
     * 
     * @param id 导入导出模板主键
     * @return 结果
     */
    public int deleteImportExportTemplateById(Long id);


    /**
     * 下载模板oss的文件
     *
     * @param id       id
     * @param fileName 文件名称
     * @param response 响应
     * @return {@link R}
     */
    R downlodaTemplateOssFileById(Long id, String fileName, HttpServletResponse response);

    /**
     * 上传excel模板
     *
     * @param id   id
     * @param file 文件
     * @return int
     */
    int uploadExcelTemplate(Long id, MultipartFile file);

    /**
     * 模板列表
     *
     * @return {@link Object}
     */
    List<Dict> listTemplate();
}
